package com.ruoyi.sjl.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 救援订单（商家执行）对象 rescue_order
 * 
 * @author ruoyi
 * @date 2025-11-13
 */
public class RescueOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long id;

    /** 对应用户救援请求ID（关联rescue表） */
    @Excel(name = "对应用户救援请求ID", readConverterExp = "关=联rescue表")
    private Long rescueId;

    /** 接单商家ID */
    @Excel(name = "接单商家ID")
    private Long merchantId;

    /** 订单状态：0创建，1前往中，2已到达，3维修中，4已完成，5已取消 */
    @Excel(name = "订单状态：0创建，1前往中，2已到达，3维修中，4已完成，5已取消")
    private Integer status;

    /** 商家与救援点实时距离（米） */
    @Excel(name = "商家与救援点实时距离", readConverterExp = "米=")
    private Double distance;

    /** 商家接单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商家接单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date acceptTime;

    /** 到达现场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到达现场时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date arriveTime;

    /** 维修开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "维修开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startRepairTime;

    /** 维修完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "维修完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 扩展字段1 */
    @Excel(name = "扩展字段1")
    private String extend1;

    /** 扩展字段2 */
    @Excel(name = "扩展字段2")
    private String extend2;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setRescueId(Long rescueId) 
    {
        this.rescueId = rescueId;
    }

    public Long getRescueId() 
    {
        return rescueId;
    }

    public void setMerchantId(Long merchantId) 
    {
        this.merchantId = merchantId;
    }

    public Long getMerchantId() 
    {
        return merchantId;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setDistance(Double distance) 
    {
        this.distance = distance;
    }

    public Double getDistance() 
    {
        return distance;
    }

    public void setAcceptTime(Date acceptTime) 
    {
        this.acceptTime = acceptTime;
    }

    public Date getAcceptTime() 
    {
        return acceptTime;
    }

    public void setArriveTime(Date arriveTime) 
    {
        this.arriveTime = arriveTime;
    }

    public Date getArriveTime() 
    {
        return arriveTime;
    }

    public void setStartRepairTime(Date startRepairTime) 
    {
        this.startRepairTime = startRepairTime;
    }

    public Date getStartRepairTime() 
    {
        return startRepairTime;
    }

    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }

    public void setExtend1(String extend1) 
    {
        this.extend1 = extend1;
    }

    public String getExtend1() 
    {
        return extend1;
    }

    public void setExtend2(String extend2) 
    {
        this.extend2 = extend2;
    }

    public String getExtend2() 
    {
        return extend2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("rescueId", getRescueId())
            .append("merchantId", getMerchantId())
            .append("status", getStatus())
            .append("distance", getDistance())
            .append("acceptTime", getAcceptTime())
            .append("arriveTime", getArriveTime())
            .append("startRepairTime", getStartRepairTime())
            .append("finishTime", getFinishTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("extend1", getExtend1())
            .append("extend2", getExtend2())
            .toString();
    }
}
